home *** CD-ROM | disk | FTP | other *** search
-
-
- CLIPPER
-
- CALENDARIOS
-
- La siguiente función muestra en pantalla el calendario del mes actual.
- Si pulsamos las teclas «flecha arriba» y «flecha abajo», retrocedemos
- o avanzamos un mes. Si pulsamos las teclas «pag_up» y «pag_down»
- retrocedemos o avanzamos un año respectivamente. Para salir del
- calendario, hay que pulsar la tecla «escape».
-
- Su funcionamiento es muy sencillo: basta con llamarlo desde nuestro
- programa mediante «calendar()». Además, permite que se le pasen
- cuatro parámetros, tal y como se describen en el listado de la
- función. Estos son las coordenadas de la esquina superior de la caja
- (fila y columna), el color del título (cColorDia) y el color de los
- números (cColorFecha). Si se llama a la función sin parámetros, se
- cogen los asignados por defecto.
-
- Para que la rutina funcione correctamente el formato de fecha debe ser
- del tipo dd/mm/aa. En este caso se ha elegido lo que se conoce como
- formato italiano.
-
- function calendar(fila,columna,cColorDia,cColorFecha)
-
- set date italian
-
- if fila==NIL
-
- fila:=5
-
- endif
-
- if columna==NIL
-
- columna:=10
-
- endif
-
- if cColorDia==NIL
-
- cColorDia:="w+/b"
-
- endif
-
- if cColorFecha==NIL
-
- cColorFecha:="gr+/b"
-
- endif
-
-
- dFecha1=date()
-
- do while lastkey()!=27
-
- nFila:=fila
-
- nCol:=columna
-
- setcolor(cColorFecha)
-
- @nFila-4,nCol,nFila+6,nCol+25 BOX "╔═╗║╝═╚║ "
-
- cTitulo := cMonth(dFecha1)+str(year(dFecha1))
-
- nLongitud := int(len(cTitulo)/2)
-
- @nFila-3,nCol+13-nLongitud say cTitulo
-
- @nFila-2,nCol+1 to nFila-2,nCol+24
-
- setcolor(cColorDia)
-
- @nFila-1,nCol+3 say " D L M X J V S"
-
- setcolor(cColorFecha)
-
- for t=1 to 31
-
- fecha=str(t)+"/"+str(month(dFecha1))+"/"+str(year(dFecha1))
-
- fecha=ctod(fecha)
-
- if dow(fecha)!=0
-
- @nFila,nCol+((dow(fecha))*3) say t picture "99"
-
- endif
-
- if dow(fecha)=7
-
- nFila++
-
- endif
-
- next
-
- inkey(0)
-
- if lastkey()=5 .and. month(dFecha1)>1
-
- dFecha1=ctod(str(day(dFecha1))+"/"+str(month(dFecha1)-1)+"/"+str(year
- (dFecha1)))
-
- elseif lastkey()=24 .and. month(dFecha1)<12
-
- dFecha1=ctod(str(day(dFecha1))+"/"+str(month(dFecha1)+1)+"/"+str(year
- (dFecha1)))
-
- elseif lastkey()=18
-
- dFecha1=ctod(str(day(dFecha1))+"/"+str(month(dFecha1))+"/"+str(year
- (dFecha1)-1))
-
- elseif lastkey()=3
-
- dFecha1=ctod(str(day(dFecha1))+"/"+str(month(dFecha1))+"/"+str(year
- (dFecha1)+1))
-
- endif
-
- enddo
-
- Fernando A. Casa Vázquez
-
- Fuenlabrada (Madrid)
-
-
- TRES FUNCIONES
-
- Función para rellenar una parte de la pantalla de un color
-
- Esta simple función nos permite rellenar una zona de la pantalla de un
- color, mediante la introducción de los parámetros de las coordenadas y
- el tipo de color.
-
- Esta rutina sólo funciona en la versión 5.2 de Clipper, aunque puede
- servir en versiones anteriores incluyendo tras la definición de los
- parámetros la orden «SET COLOR TO /&COLORE» y borrando en la línea del
- REPLICATE el trozo que dice «COLOR "/"+COLORES».
-
- PROCEDURE TROZO
-
- PARAMETERS F1, C1, F2, C2, COLORES
-
- CO2= (C2-C1)+1
-
- DO WHILE F1<=F2
-
- @ F1,C1 SAY REPLICATE(" ",CO2) COLOR "/"+COLORES
-
- F1=F1+1
-
- ENDDO
-
- RETURN
-
- Función para la mezcla de colores de fondo
-
- Esta pequeña función nos permite mezclar los caracteres ASCII 176, 177
- y 178 (que son prácticamente iguales pero se diferencian en el
- espesor) con distintos colores y rellenar toda la pantalla. Así
- podremos conseguir infinidad de colores para el fondo de la pantalla.
-
- Los parámetros que se han de especificar son los caracteres ASCII 176,
- 177 y 178, y los colores (NORMAL/FONDO). Esta función sólo funciona
- con la versión 5.2 de Clipper; para que podamos usarla con versiones
- anteriores se ha de incluir después de la definición de los parámetros
- la instrucción «SET COLOR TO &COLORES» y se ha de borrar en la línea
- del REPLICATE el trozo que dice «COLOR "/"+COLORES».
-
- PROCEDURE FONDO
-
- PARAMETERS CARACTER, COLORES
-
- F=0
-
- DO WHILE F<=24
-
- @ F,0 SAY REPLICATE (CARACTER,80) COLOR "/"+COLORES
-
- F=F+1
-
- ENDDO
-
- RETURN
-
- Función para crear la sombra de los recuadros
-
- En esta función basta con introducir como parámetros las coordenadas
- que tiene el recuadro y automáticamente la función crea la sombra del
- mismo.
-
- Sólo sirve para la versión 5.2 de Clipper, pero podemos adaptarla a
- versiones anteriores si después de la definición de los parámetros
- incluimos la instrucción «SET COLOR TO /N» y en la línea del REPLICATE
- borramos el trozo que dice «COLOR "/N"».
-
- PROCEDURE SOMBRA
-
- PARAMETERS F1, C1, F2, C2
-
- ABAJO=(C2-C1)+1
-
- LATERAL=(F2-F1)+1
-
- @ F2+1, C1+2 SAY REPLICATE(" ", ABAJO) COLOR "/N"
-
- FOR I = 1 TO LATERAL
-
- @ F1+1, C2+1 SAY " " COLOR "/N"
-
- F1=F1+1
-
- NEXT
-
- RETURN
-
- Alberto Ruiz Bermúdez
-
- Hospitalet (Barcelona)
-
-
-